{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Plot benchmark results\n",
    "This notebook reads metrics from `baseline_metrics` and produces barplot akin to those in the paper. **Note** that these results are based on the retrained checkpoints and **MatterSim** relaxation & energy (**not DFT**), so results may vary from those in the paper."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import seaborn as sns\n",
    "import pandas as pd\n",
    "import os\n",
    "import json\n",
    "from matplotlib import pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Read all metrics dictionaries\n",
    "all_data_dicts = []\n",
    "for baseline in os.listdir(\"metrics\"):\n",
    "    if not baseline.endswith(\".json\"):\n",
    "        continue\n",
    "    with open(os.path.join(\"metrics\", baseline)) as f:\n",
    "        data = json.load(f)\n",
    "    data = {\n",
    "        k: v[\"value\"] for k, v in data.items()\n",
    "    }\n",
    "    data[\"model\"] = baseline.split(\".\")[0]\n",
    "    all_data_dicts.append(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "df = pd.DataFrame(all_data_dicts)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define display names for plotting\n",
    "model_display_names = {\n",
    "    \"mattergen\": \"MatterGen\\n$^{\\\\text{(Alex-MP)}}$\",\n",
    "    \"mattergen_mp_20\": \"MatterGen\\n$^{\\\\text{(MP)}}$\",\n",
    "    \"g_schnet\": \"G-SchNet\\n$^{\\\\text{(MP)}}$\",\n",
    "    \"p_g_schnet\": \"P-G-SchNet\\n$^{\\\\text{(MP)}}$\",\n",
    "    \"cdvae\": \"CDVAE\\n$^{\\\\text{(MP)}}$\",\n",
    "    \"diffcsp_mp_20\": \"DiffCSP\\n$^{\\\\text{(MP)}}$\",\n",
    "    \"ftcp\": \"FTCP\\n$^{\\\\text{(MP)}}$\",\n",
    "}"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "model_order = [\"mattergen\", \"mattergen_mp_20\", \"diffcsp_mp_20\", \"cdvae\", \"g_schnet\", \"p_g_schnet\", \"ftcp\"]\n",
    "# reorder rows\n",
    "df[\"model\"] = pd.Categorical(df[\"model\"], categories=model_order, ordered=True)\n",
    "df[\"% S.U.N. Structures (MatterSim)\"] = 100 * df[\"frac_novel_unique_stable_structures\"]\n",
    "df.model = df.model.cat.rename_categories(model_display_names)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "TEAL = \"#49c5b1\"\n",
    "PURPLE = \"#8661c5\"\n",
    "GREY = \"#d9d9d6\"\n",
    "colors = [TEAL, PURPLE, GREY, GREY, GREY, GREY, GREY]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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TVrrRQRff/01ChcujNy5c6NRo0a4fv26oUImIiIioncwahvF2NhYVKxYEXPnzs1w/bRp0zBr1izMnz8fx48fR548edC0aVO8evUqiyMlIiIi+vjo3Ebx3r17Om3n4uKi8879/Pzg5+eX4ToRwYwZM/DVV1+hTZs2AIBly5bBwcEBmzZtQufOnXXeDxERERHpT+dC0dXVFYqipFsuIupyRVGQlJRkkMBu376NiIgINGrUSF1ma2sLLy8vHD16lIUiERERUSbTuVA8c+ZMhstFBKtXr8asWbOQN29egwUWEREBAHBwcNBa7uDgoK4DgFWrVmHVqlVITEw02L6JiIiISI9CsWLFiumW7d69GyNHjsS1a9cwfPhwBAUFGTQ4XQQEBCAgIAAxMTGwtbXN8v0TERERfaj+UWeW06dPo3HjxmjZsiVq1qyJGzdu4JtvvoG1tbXBAnN0dAQAREZGai2PjIxU1xERERFR5tGrULx58yY6deqEGjVqoFChQrh8+TLmzJkDe3t7gwfm5uYGR0dH7NmzR10WExOD48ePw9vb2+D7IyIiIiJtOt967t+/PxYuXIj69evj1KlTqFSp0r/e+cuXL3Hjxg318e3bt3H27FnY2dnBxcUFgwcPxsSJE1GqVCm4ubkhODgYTk5OaNu27b/eNxERERG9m86F4vz582FpaYmoqCj06NHjrdudPn1a552fOnUK9evXVx8PHToUABAYGIglS5Zg+PDhiI2NRe/evfH8+XPUrl0bO3fuhKWlpc77ICIiIqJ/RudCcezYsQbfua+vL0TkresVRcH48eMxfvx4g++biIiIiN7NqIUiEREREWVfRp3Cj4iIiIiyL4MViqNHj35n20UiIiIiyll0vvX8Pn///Tfu379vqJcjIiIiIiMzWKG4dOlSQ70UEREREWUDbKNIRERERBnS+YqiZozDN9na2sLd3R3t2rVDrly5DBYYERERERmXzoXimTNnMlz+/Plz3LhxA8HBwdi7dy9cXFwMFhwREWW9a9euGDuELOPuXtbYIRBlazoXivv27XvrupiYGHTp0gUjR47EypUrDRIYERERERmXQdoo2tjYIDg4GGFhYYZ4OSIiIiLKBgzWmaVgwYJ4+vSpoV6OiIiIiIzMYIXisWPHUKJECUO9HBEREREZmc5tFM+fP5/h8ujoaISHh2PSpEmcD5qIiIjoA6JzoVipUiUoigIRSbeuYMGCGDp0KPr372/Q4IiIiIjIeHQuFG/fvp3hchsbG+TPn99gARERERFR9qBzoVisWLHMjIOIiIiIshmDdWZ5+PAh7t27Z6iXIyIiIiIjM1ih2KBBA7i5uRnq5YiIiIjIyHS+9fw+y5YtQ1xcnKFejoiIiIiMzGCFYvXq1Q31UkRERESUDfyrQvHVq1dYs2YNYmNj0bhxY5QqVcpQcRERERGRkelcKA4dOhSJiYmYPXs2ACAhIQHe3t64dOkSrKysMHz4cOzatQve3t6ZFiwRERERZR2dO7P88ccfaNy4sfp4xYoVuHv3Lq5fv45nz56hY8eOmDhxYqYESURERERZT+dC8d69e/Dw8FAf//HHH+jQoQOKFSsGRVHwxRdf4MyZM5kSJBERERFlPZ0LRRMTE63p+44dO4aaNWuqj/Ply4dnz54ZNjoiIiIiMhqdC8WyZcti69atAIBLly7h3r17qF+/vrr+7t27cHBwMHyERERERGQUOndmGT58ODp37ozt27fj0qVLaN68udYA2zt27ECNGjUyJUgiIiIiyno6X1H85JNPsGPHDlSoUAFDhgzBmjVrtNZbWVmhf//+Bg+QiIiIiIxDr3EUGzZsiIYNG2a4buzYsQYJiIiIiIiyB4PN9UxEREREHxYWikRERESUIRaKRERERJQhFopERERElCG9OrO86fHjxzh+/DiSk5NRvXp1FC5c2FBxEREREZGR/eNCcf369ejZsyfc3d2RmJiIq1evYu7cuejevbsh4yMiIiIiI9H51vPLly+1Ho8bNw4nTpzAiRMncObMGaxduxZjxowxeIBEREREZBw6F4pVq1bF5s2b1cdmZmaIiopSH0dGRsLCwsKw0RERERGR0eh86zk0NBQDBgzAkiVLMHfuXMycOROdOnVCcnIykpKSYGJigiVLlmRiqERERESUlXQuFF1dXbF9+3asWrUK9erVw+eff44bN27gxo0bSE5ORpkyZWBpaZmZsRIRERFRFtJ7eJyAgACcPHkS586dg6+vL1JSUlCpUiUWiUREREQfGL16Pe/YsQNXrlxBxYoV8euvv+LAgQPo0qUL/Pz8MH78eOTOnTuz4iQiIiKiLKbzFcWgoCB0794dJ0+eRJ8+fTBhwgTUq1cPp0+fhqWlJSpXroyQkJDMjJWIiIiIspDOheKSJUuwY8cOrF69GidPnsRvv/0GALCwsMCECROwYcMGTJo0KdMCJSIiIqKspXOhmCdPHty+fRsAcP/+/XRtEj08PHDo0CHDRkdERERERqNzoTh58mR069YNTk5OqFevHiZMmJCZcRERERGRkencmaVLly5o1qwZbt26hVKlSiFfvnyZGBYRERERGZtew+MUKFAA1atXz/Iice7cuXB1dYWlpSW8vLxw4sSJLN0/ERER0cdI73EUs9qaNWswdOhQjB07FqdPn0bFihXRtGlTrekDiYiIiMjwsn2h+MMPP+Czzz5D9+7d4eHhgfnz58PKygqLFi0ydmhEREREH7RsXSgmJCQgPDwcjRo1UpeZmJigUaNGOHr0qBEjIyIiIvrw6TUzS1Z7/PgxkpOT4eDgoLXcwcEBf/75p9YyEQEAxMTEZFl8/1ZibJyxQ8gy/+bv8ioh1oCRZG//Jk8vX740YCTZ2z/NE3OkG+bp/Zgjysk0f1NN7fQu2bpQ1MWqVauwatUqxMfHAwCcnZ2NHBFlxNbYAeQQ41cYOwIiIvpYvHjxAra27/6GztaFYsGCBWFqaorIyEit5ZGRkXB0dAQABAQEICAgACkpKXjw4AGsra2hKIoxws0xOnXqhDVr1hg7jGyPedKm+eWZ9vhijt4tISEBFhYW8Pf3x++//27scLIVEVE/SyKCzp0787OURtr8AEBycjJMTU15zOmAOXo/EcGLFy/g5OT03m2zdaFoYWGBqlWrYs+ePWjbti0AICUlBXv27MHAgQO1tjUxMUHRokWNEGXOY25uDhsbG2OHke0xT/+TkpICE5PUJs1RUVGws7ODmZkZzM3N+ePsLfr374/Tp08jLCwMFhYW/CxlIC4uDpaWljAxMVGPtzcLpI9deHg4qlatqj7meSljycnJePjwIZycnHhe0tH7riRqZOtCEQCGDh2KwMBAVKtWDTVq1MCMGTMQGxuL7t27Gzu0HCEpKQlmZtp/5oCAACNFk30xTxnTfGmbmJggIiICQ4YMwfXr12FlZYVmzZohICCAJ+M3LF26FEOGDIGLiwumT58OU1NTfpYysHjxYsycORNnz57Fq1evYGlpiadPn8LOzs7YoWULr169wrBhw3D69Gns3LkTa9euxYkTJ9C6dWtjh5bt/Pjjj+pIKPb29mjQoAEUReGPDkORHGD27Nni4uIiFhYWUqNGDTl27JixQ8r2UlJStB7v3r1bbty4oS5/c/3HinnSzahRo8Tc3Fzatm0rK1asEF9fX8mbN6/8+uuvIiKSnJxs5AiN7/Lly1K+fHlxcHCQ+fPnGzucbO/p06diZmYmHTp0EHNzc/Hz85OoqChjh5Wt7NixQypWrChFihQRW1tbWbhwobFDylYOHjwoLi4u4ubmJosXL5YJEyZImTJlpGTJksYO7YOSIwpF0k/a4ub48eNSuHBhKVasmDg5OcnUqVPl1atXRowu+2Ce0ktJSdHKS1JSknz//feiKIrWl9SDBw+kZcuWUqFCBUlKSjJGqNlKXFyc9OjRQxRFkcTERK110dHRsmvXLhH5uH94pP1sJSYmyq1bt0RRFMmdO7f6g+NjpzmWNJ+hpUuXiqWlpTg5OcmBAwe0tvnY3bp1S6pUqSLFihXTWh4aGiqmpqaybNkyEfm4jzlDydbjKNI/oygKHj58iAULFmDDhg0ICgrCyZMn0b59e2zcuBHz588HoFu3+A8Z86QtJSUFiqJAURQ8efIEsbGxMDU1RfXq1dG4cWOEhYUBABITE1G4cGHY2NjA3NwcL1++/Ghy9Da5c+dGv379YG1tjcWLF6vLJ0+eDGdnZ6xYsQLJyckf7W2wpKQk9bOVkpICMzMzuLi4YMqUKcifPz+uX79u7BCNKiUlBQBgamoKILW9HQA0atQIK1euhKenJ1auXKlu8zEfb5rOrcWKFUPv3r3x4sULnD59Wl3v5OQEa2trvHr1CgA+2mPOoIxbp5IhZPQLc8iQIeLo6CheXl7y+PFjEUm9stG3b1/x9vaWmzdvisjH9WuLecpY2vcWExMjgwYNEj8/P5k5c6a6fubMmeLu7i4hISEiIhIVFSUeHh7St29fo8RsbPfv31fzlvYq0LBhw8Te3l5+//13KVmypHh4eMiGDRuMGWqWetdxkpKSIuPGjZPRo0fLokWL5O+//xYRkUWLFomFhYWcPn06q8I0qnflaN26deLj4yNt2rSRXr16SWxsrIiITJw4UapXry7r1q0TkY/zquKiRYukfv360qFDB/nqq6/k+fPncv/+ffHz85O6deuq202cOFHs7e3l/PnzRoz2w8JCMQdLTk7WOunEx8er/z59+rTUq1dPypYtq/Wc0NBQqVOnjnzxxRdZFabRMU+6mTlzptja2krTpk1l6dKlsm3bNvUL6dq1a+Lv7y+NGzeWSZMmSb58+aR169YSFxdn5KizVkJCgnz66adSqFAhmTJlSrr1t2/flsqVK4uiKPLTTz9JTEyMuu5D/rHxPnv27BFHR0epXr26fPbZZ1K1alXx8/NTf5x5eXlJixYtPpq2ri9fvlT/nZycLElJSRIUFCSFChWSyZMny6JFi6RGjRrSoEEDuXPnjty7d09atWolHTp0kOjoaK3nfuiuXr0qPj4+UrRoUVmwYIGsXr1azpw5o67ftGmT5MuXT4KDg6VWrVpSuHBhCQ0NNV7AHyAWih+AkJAQqVevnrRq1Uq6desmjx49EhGRuXPnSrly5WTx4sXqtklJSTJ27FipXr267NmzR0Q+ni8w5untdu/eLdWqVZM1a9aISMbvdcWKFVKyZEnJnz+/7Nu3T13+MXxZaTx+/Fg6dOggI0eOlCJFisjkyZPl1q1b6vrExERZvHixmJqayt27d9VlGn///bfcv38/y+POKvfv35eePXtqXR3UFNdff/21umzevHmiKIpMnjxZRESOHDkiZmZmsnz5cklOTpaQkBBZtWpVlsefFVauXCmlSpXS+hxERkZKnTp11Cv2IiIBAQFibW2tnn8WLFggNWvWlNGjR8uDBw+kc+fO6roPVXJysnz22WfyySefqMeThuYc9ejRIxk4cKAoiiLDhg2TFy9eqOs/5HN2VmIbxRxKUot8jBs3Dl27dkX9+vXRrl07/PXXX2jRogWuXr2KTp06wcPDA+vWrUNERASA1PYtrVu3hqmpKdatWwfgw27DwTxp07R9etPmzZuhKAo6duwIIPW9atr4aJ7ToEEDNGnSBC4uLqhcuTKA1LZnmvEVP1TLly/H+vXrAQAFChTA48ePUaJECWzduhUXLlxAp06dEBMTAxGBmZkZWrRoAW9vb/Tu3RsAYGZmhtevX2P06NEoWrQodu3aZcy3YzCadnVpXb9+HWfPnlXb9wKpU7FeuHAB/v7+ePr0KTp27IiRI0dizJgx6Nu3LwDA29sbvXr1wpAhQ1CuXDn1c5iTac49aR8Dqe0O7927h5UrV6rH1rlz5xAREYFmzZph9uzZKFCgAB48eIA//vgDDRo0AJA6iHTjxo2xcuVKVKhQAZGRkahRo0bWv7EsMH/+fPz9998ICwvD0qVLERAQABcXF3W9pBn2pmDBgvD390fx4sVhbW2NvHnzarWJJQMwWolKetm5c6ccPXpU61ZWTEyMNGzYUFavXq0uGzhwoJiamsqWLVtEJPXXq7e3d7rbZCdPnsyawLMY85SxtL+sExISZP78+bJgwQLZvn27iIgMHjxYWrduLXfu3JGUlBSZM2eOfPHFF9KwYUNp2rSpnDp1SkRSbyHWqFFDhg0blu51P1T58+eXUaNGqY9nzZolLVu2lMTERHnx4oU0a9ZMAgICZO3atSKSehUkNDRUzMzMZO/evbJ+/Xqxt7cXDw8POXjwoLHeRpaZMmWKVK5cWbZt2yYiImfPnhV3d3fp3bu32NraStu2beXy5cvq9mnbkq1bt07mzZuXrud4TpZ2uC1NU46pU6eKnZ2dXLx4UUREzpw5IyVKlBBHR0dxd3eX5cuXq8+5ffu2nD17VkRSr06fPXtWrl69aoR3kvmWLVsmdnZ2Urx4cXn69Kn8+OOP4uzs/NYmLpq7GS9fvpQJEyZIwYIF5cGDByLycbbjzCwsFLO5n3/+WcqWLSstW7aUmjVryo4dO9R14eHh4uzsLCIiS5YsEXt7e/Hy8pK9e/eq28THx0u/fv2kYsWKEh4enuXxZxXmSTezZ8+WggULip+fn/Ts2VMtjNetWydVq1aVokWLiqWlpVSpUkUCAwMlMDBQatWqJa6urnLnzh159eqVjB8/XgoVKiTHjx838rvJXJovof/85z/SqlUrdfmcOXOkTZs2alvXo0ePSp48ecTGxkbWr1+vDqv06aefiqIoYmtrK/Pmzcv6N5DJNm/eLKVLl5bvvvtOHj58qC4/f/68fPLJJ9KqVSu14Ktfv76YmJjI5s2btV5j9+7dEhQUJH/99VeWxp4VXr9+rd4S7dWrl1oUari5uUn37t1FJPWWfdu2bcXT01OeP3+utd3o0aPlyy+//KB/lF28eFEaNGgglpaW8ttvv6nvdcmSJaIoitrx6V3NXG7cuCGenp7StGnTLIn5Y8JCMZv666+/pEWLFlKkSBFZunSpPHr0SO7cuaO1zfXr16Vs2bLi5OQkxYoVk19++UX9FfX333+rV8NCQkKkT58+cvv27Qz3pTkoc2Jbs6zMk0ZOy1NSUpIkJSXJyJEjpUSJEmo7ME2PSo27d+/K/PnzJSQkRG7fvi3Pnj0TkdQvPBMTE7XH5ZEjRyQoKOidecppOUrrzdg/++wzadasmXqV+vjx4+pVjqCgIDE3N5devXrJ4MGDpWzZsjJ48GBJSEiQ8+fPy5w5c/TaV04SGBgoiqJIoUKFxNPTUzZu3Kiu+/XXX6VSpUoya9YsERHZtWuXKIoi8+bNk5s3b0p8fLysX79eypcvL0OHDtW6A5CRnJin58+fS1BQkCiKIsWLF5cqVarI9OnTJTIyUkRSf5yZmpqqP1jnz58v7u7u0rdvXzl8+LCcPXtWOnbsKG5ubvL777+/d385MUcvXryQjh07iqIokidPHunZs6fW+k2bNom9vf1b72CkpKTI7NmzJTQ0VFJSUuS3336Tn3/++Z37zIl5MjYWitnU9OnTpWbNmlq3aEREIiIiZMaMGXLp0iWJjo6WgIAAKV26dLqGvpMmTZK+ffu+96A4c+aM9OvXL8cePFmRp5SUFImKipLu3bvnmJkj7t69K926dVMbzF+6dEnc3d3ll19+SXeyfd/f/tixY+Lk5JTualBaOTFHaR0+fFiqVasmly9fVvPx+vVrERFZvny5WFtbq1fHHj58KG5ubqIoipQvX169xSqS+mVvbW0tS5YsyXA/OT1PIv+7pffXX3+Jm5ubDB06VFq2bCkeHh7SsWNHuX79uiQnJ8t///tfqVOnjvoZHDFihPqDzcfHR/LmzSvfffddhvvIqXl689g6deqU1KtXT1q3bi2bN2+WwoULS82aNdUfp23atJFatWrJq1evJC4uTjZs2CAuLi5Srlw5KVasmDRv3ly9mpbRvnJijjQmTJggFhYW0qRJE7l9+7Z8//33UrNmTfUHqUhqsyE/Pz9xdXVVm7+I/C/Phw8flubNm6e7WptWTs9TdsBCMRtJ24vLzs5OgoODReR/X+Sff/65WFtbi6IoMn78eBERWb16tZQrV066dOkihw8flgsXLkhgYKA4OzvLokWLtF43rUuXLqn/DgoKksmTJ6uzR2T3ojEr83Tr1i21F9306dNlzJgx2b43ZkhIiNja2kq3bt3U21gzZ84UBwcHefLkiV6vdf/+fenYsaO0aNFCnj59muE2OTFHbwoLC5OqVatKmTJl0l0F3Lt3r7i5ucnu3btFJLWHapUqVWT48OHqbWbNZychIUHrNmxaOTFPmuFrNEXzm0aPHi01atSQrVu3yrlz56R69epStGhRWbVqlcyfP19atWolQ4YMEZHU4/PGjRuyfft2Wbp0qdYQMWnlpDxduHBBRFL//hm1q4yPj5c5c+ZI3rx55e7du3Lv3j1p166duLq6yqBBg+TEiRNiYmIiy5cvV5//5MkTuXv37jvbIeakHL1p06ZN4uTkJG5ubrJp0yZ1+dWrV6VVq1bSvn17rSGAtm3bJmXKlBFXV1c5cOCA3Lx5U27evClz584Vd3d3GT58eLq7Ixo5OU/ZCQvFbCJtcXbp0iWxsLBQG8eLpN7GaN68uRw9elRGjRolnp6ecvToUUlJSZGQkBApUaKElC1bVtzc3KR+/fpy/fr1DPdz4cIFadOmjVSuXFn69esnhw4dkuTkZNmwYYM0aNBAbQicXdvDZFWenjx5Iv369RNPT08JCAhQb/0cOnRIWrRoITt37kwXj7Fpiv9JkyZpDUArkjpXs6adZkJCgta6N//WR44ckRkzZsigQYPE1tZWWrZsKREREen2lxNzpBETEyNnz56VK1euqO8tNjZWevfuLfny5ZNp06apRdL58+elQIECWh1RmjRpIv/9739F5P3vLyfm6cmTJ9KuXTsJCgrS6hRw7tw5uXLlivo4ISFBPD09pXv37hIXFycvX76UadOmSbly5cTDw0NatGghVapU0boa9K595qQ83b9/XxRFkW+//VZdFhkZKTNnzpSjR4+qP9KuXbsmjRo1koYNG6rbrVu3TlxdXaVNmzZibm4utWrV0qmDSk7LUVq3b98WHx8fsbGxkalTp2rFqPn3zz//LF5eXmqTBY3Dhw9L9erVxdraWlxdXaV8+fLi7OwsK1asyHBfOTlP2RELRSNL+0E9evSojBs3Tp4+fSqmpqbp5j/V/OJ8/fq1VKhQQXr16qUWds+ePZO///5b60rhmzZu3CiKosjWrVvl2bNnMmnSJOnVq5faZubLL7+U9u3bi0j2KxSzMk+XLl0SRVFkypQpkpycLPPmzZPAwED1y05zdTK7OHfunJQrV07q1asniYmJ8tVXX0n9+vVl7ty5UqdOHVm9erUsXLhQFEVRB6rNqEfg6dOn5enTp7Jlyxbp3r27dO7cWfbv35/hPnNajtL65ptvxNPTU+rUqSNmZmZStmxZtV1TUlKS/Pjjj1KgQAHx9/dX22mWLl1aaxzAcePGSeXKlbWufGQkJ+cpMDBQ6tevLwcPHpQXL15I7dq1pXDhwuLg4CATJkyQe/fuiYjI4sWLxdnZWVauXKk+99y5c9K1a1cxNTUVRVHUq/5vkxPzlJSUJN98840UKFBAoqOjZdWqVWJlZSWlSpWSIkWKSJs2bUQk9dy1fv16yZcvn1Zbw1u3bsnUqVNFURRRFEWdy/ltcmKONJ4+fSrly5eXokWLvvXqn0jq+blbt27SqFEj9Ue85rvo+fPncvDgQdm+fbvWlcg35eQ8ZVcsFLOB169fy759+6RkyZLSq1cviYqKkvr160uNGjXSfRFprgZ9/vnnUrx4cbVDwbsKu9mzZ8vWrVslLi5OChUqpHb2OHjwoLRp00Ztt5eUlCQeHh5y5MiR976mMWR2njRffCIiZcuWVb/47ty5I61bt5bDhw+r65s1a6ZOcWfMX6WJiYnSrl07ad26tbosLCxMbG1txdTUVPr37y8iqX/r4sWLS7NmzUTkfzFr8hEeHi6ffPKJHDt2TFJSUtTByN+UE3OksWbNGilQoIBUqlRJ1q5dK0eOHJFt27bJf/7zH/WLRfMjY/HixVKhQgXx9vaW3bt3S2BgoPTt21e9BTty5Ejp16/fW4ftyMl50hw7165dEy8vLxkxYoR89dVX0r9/f7lx44Z8/fXX4unpKd988436nIYNG0qrVq202gonJyfLli1b3tnjOyfmKe2+79+/r56PJk6cKDt27JDY2FhZv369WFhYyNy5c0Uktc109+7dxd3dXX2u5tgLCwtL1wEvrZyYo4xMnDhRfH19tUab+Omnn6RXr15aTRu2bNkitWvXlpEjR6rLdPku+lDylB2xUMxib37gjx07Ji1bthRfX1/54Ycf1G1WrFghZmZmMm3aNLVHoOYDfefOHQkICJAxY8a89wCKjY0VMzMzadKkiTx79kzmzJkjtWvXFhGRrVu3Stu2bbXaCs2ePVvrADWWrM5TYGCgeHp6yrFjx0REZN++fVK0aFEREXnw4IE0bNhQ/vzzT3X7PXv2SNeuXbWmA8xKmoLm7t27UqdOHXWYmx07dqgN4cuXL6+2O01MTJRRo0aJqalputs6ERER0qtXL+nevfs7r5DltBylNXbsWFEUReuqYFrNmzeXUqVKqR1TUlJS5O7du1K5cmVp2LCh5MuXT7p27apu/65x/nJqnpKSktIdJ+PHjxdPT0/x9PTUGu9w0KBBUq9ePXUmkcOHD4uLi4vMnDlTbbf5PjkxT2n/7pp///bbb2JiYiLly5dX786IiHz99ddSoEABtQmD5sea5jOoy1iROTFHb/Ps2TNp2rSp9O7dW3bt2iUVK1YUFxcXtelQ2s9eUFCQ1K1bVy0qP7Tzd07zYU+pkI2kpKQgJSUl3UjxVlZWiIuLw6lTp+Dr6wsgdVYMPz8/DBgwAKNGjcKgQYNw6NAhHDp0CN999x2qVauGly9fon///hmOPP/o0SNER0cDAGJjY/Hpp5+iTJkyWLBgAQYMGIDo6GhUqFABP/74I/r37488efKoz3V3d0ehQoUAQGtWgaySlXlKq3jx4rCyssKePXvw4sUL+Pr6olq1aihZsiQ6dOgAf39/lC5dWt3e3t4eJUqUQGJiYpblSURw5coVuLq64sqVKwAAFxcXeHh4YO3atTA1NcXSpUsREhKCO3fuIE+ePFi5ciXu3LkDMzMz9OzZE/369cMXX3yBWrVqoX///ujXrx/Kli2L+/fvY/z48bCxsXnr/nNCjtKKj4/H0aNHER0djQ4dOsDBwQFubm5ISEgAkJrPxMREAMB3332HqKgohIaGIj4+HoqiwMXFBUuXLkWtWrUQHR2Nw4cPq9ubmZm9db85LU9A6nFnamoKRVEQFhaGBQsWAAAGDx6MwoUL49mzZ1qfjV69egEANmzYgNjYWPj4+MDHxwdz5szBzZs3ddpnTsyTmZkZYmJiMGzYMMyYMQPPnz9H27Zt0aZNGzVGjYEDB8LGxgZjx44FAFSqVAlt2rTB0qVL8erVq3d+hjRyYo7eJl++fOjRowd2794NPz8/dOrUCWfOnEGHDh0ApJ7PNbP9+Pv748WLF9iyZYu67l0+pDxlS0YrUT8iaX8N3bhxQ5YsWSLh4eHqLZ4lS5ZIoUKF1KtCabcfPny4lCxZUmxsbMTT01M8PDze2Wtr27ZtoiiKfPHFF+oyf39/GTJkiHzzzTdy6tQpOXr0qOTOnVtdn5ycrO7zwIED0qFDB4O8b31lZZ5mz54tP/30k/p48uTJEhgYKFOmTFGfFxERIXny5JFz586lizEiIkIaNmz43vHfMoNmTurExERJTk6WAgUKSK5cucTPz0/ras6SJUukbNmy6dpwLl++XDp37iydO3eWTz75RLZu3ZrhfnJyjqZMmSJlypSRFi1aiKurq7x69Up69Ogh3t7e6QYK11yBDggIkHLlyklSUlK621GrV69We0++KSfl6V232SIiIsTPz08KFSokn376qdqO9/fffxcPDw/1Sr7GlClTpHbt2rJw4UL1+W/7LInkjDy978rVwoULxdraWho2bChLliyRGzduiEjqedPc3Fwd2kXzOsuXLxdzc3O1fdyDBw/eeRUrJ+To30hISJCOHTtK/fr11VEU3vaZPHTo0Ftf50PPU3bDQjGLJCUlycCBA8XGxka8vLzE2dlZWrZsKY8fP5YXL15Ily5dpHHjxnLr1i0R0R6O4smTJ3L//n2deg6KiLi7u0vRokXlt99+k+vXr8v+/fulZ8+eMnPmTBk9erSIpI7f9bZbIGvXrn1vI/3Mktl50sy64uDgIIqiqL3mzpw5I7Vr15a5c+fKmDFj1DaNI0aM0GqUnvb/mzdvTjcuoyG960v95cuX6thh8+fPly+++CLdjDQiIi1btpRWrVpp3TbUeNsUVzkpR2+6efOm+Pr6SokSJWTDhg1y584dteC5d++eFCtWTMaMGaN+vlNSUtQ8/PDDD+Lk5KTVPvNdhUNOytObnyXNbTjN+0tMTJSuXbtKkyZN5K+//lI78Wh06tRJ/Pz8tI6tyMhIqVWrlnTo0CHdbCJp5ZQ8pT0eTp48Kfv27dMq6u7cuSNVq1aV+fPnp3vu69evpU+fPlKsWDGt5fHx8VKpUqX3NufJKTkyhOPHj4u3t7dWb/G0PpRj7kPCQjGTvPklvGjRIqlcubI6Z+ezZ89EURT5/PPPRST1Q+vj4yNjxoz5x/vUFHxr166VQoUKSUhIiLRv317mz58va9askZMnT8oXX3whO3fulLt374qiKBme4N8cPiUzZXWeevfuLfv375ewsDDJnTu3TJgwQb799lsJDw+X+fPny+rVq2XkyJHyyy+/qM/JlStXhr1/3za23L/15oly//79sm/fPjlw4IB6xfCTTz4RNzc3dTDep0+fSpUqVaRPnz5a4/gdPHhQypUrJ1OmTFH/ru9rvJ0TcvQ2EydOlNq1a6ebNUZzbIwfP17KlCmjDo+RVt26daVBgwY6t1vKiXlatGiR1KhRQ+rVq6c1NFR4eLjY2trKnj17tLbXfGYOHz4sVapUkeDgYK0flocPH1bb4L1NTsrTlStXpFGjRlKqVCkZOHCg2uZNROSXX36RokWLauUtJSVFPV6vXLkihQoVkkmTJonI/46zt40/mlZOytG/lZKSIl988YXUr19fPc/rOi/zx5Sn7IRtFA3o6tWrGDBgAJ48eQJTU1OcPXsWT548QXJyMpYtW4Y+ffqgYsWK2LZtG/z8/ODi4oJmzZoBAFq2bInq1avj8OHDOHToEID3txHUtOfQ0LR56dChA9zc3BAVFYXevXtj8uTJmDNnDqpVq4Zy5cphzZo1cHBwwJkzZ2Bra5tuP+bm5oZKSYayOk8aycnJcHNzg4WFBWrVqoU6dergyZMnqFSpErp3746QkBA0a9YMFStWxJUrV3Ds2DEAwKlTp1CvXr10r2dhYWGgjPxP2vaZW7duRaVKlTBq1Cj07NkTTZo0Qa1atRAWFoaffvoJf/31F7Zs2YJXr14hf/786NWrFw4fPoxdu3apr1enTh1Uq1YNv/32m9qu0cTk7Yd9TsjR20RFRWHatGlo3bo1XF1dtdaZmpoCAL766ivkypULv//+O+7fv6+u37x5MwAgODgYlpaW791XTsvT9evXUadOHYwdOxaBgYHo27cvrKys1PWvX7+GlZUVHBwcAPzv3KI5F/j4+KBBgwbYvn07tm/frj7Px8cHBQoUeOt+c0KeNOePBQsWoHbt2nB1dcXq1avx+eefw8vLS90uNjYWIoKSJUuqz1MURT1ey5Qpg6CgIIwZMwaPHj1Sj7P8+fO/c/85IUeGpCgKvvzySyQmJmL69OkA/nd8vsvHlqfshIWiAV28eBEnTpzAhAkT0KBBA9SqVQsPHz6EqakpLCwscPfuXQQGBuI///kPGjdujAsXLsDPzw9xcXEwMTFBp06d8Pz58/c24NWc2DQnosjISABAYmIikpOTAaQ2zg8ODkajRo2wevVqdO/eHSkpKahTpw66du2KXLlyoWLFiu/cT2bJqjy9ydTUFDExMVi2bBkAYNq0aVi9ejWaNGmCAQMGICIiArdu3YK3tzdy5cqF58+fAwDKlSsHIGs695iYmODOnTuoXbs2unXrhk6dOmHx4sXYunUrDh8+jJcvX6Jbt26IjY1FcHAwJk6ciFu3bgEA+vXrBycnJ2zZsgVXr15VX/Pbb7/F7NmzUaFChffuPyfk6G2ioqKQnJysFolpf0gpioLExEQoioKRI0di165dOHXqFBISEvDVV1+hT58+qFevHmrVqqXTvnJann755Rc4OjrizJkz6N+/Pzp37gwnJyd1/evXr5EnTx4cOXIESUlJMDExUTuWXb58GQDQp08f2Nvbq53ddJET8qQoCmJjY7Fy5UqMGzcOCxYsQJUqVVCqVCmt7Xx9ffHo0SOsX79efR6QWkBu3boVr1+/Ro8ePRAcHKzVQfB9ckKODK1o0aJo27YtqlWrpnP8H2Oesg1jXMb8kKS9DZOUlCQ1atQQRVGkefPm6i2suLg4GTZsmFhYWEiLFi20Zrm4deuWDB8+XGsIBX0MGzZMvS2roWmg2759exk8eLCIGP8yu7HzpBEVFSUlS5ZU22h16dJFevXqJSKpQ81oBoN9V5urzKQZmLZIkSJqLGlvRe/bt088PT3V8RALFCggX375pdrmLjQ0VNzd3WXcuHH/eHyw7J6jt/nzzz/V4X/eN/SIv7+/uLq6ip2dnZQqVeqdDeffJqfkKSIiQmxsbGTZsmVay589e6b1GWnVqpU0a9ZMwsLC1GVXrlyRjh07pmvTqI+ckKfQ0FApVqyY1udAM43euXPn5MmTJ5KUlCQ9evSQggULyu3bt9XOTTNnzpROnTrJzZs3//H+c0KODO1D/Sx9iFgo/kN3794VZ2dntUfV8uXLJTg4WAYMGCCVK1dWBzrWWL9+vVStWlWCgoJEJPUgiY2NlVGjRomPj49Wz6w3paSkaJ3Qb9++Ld9++62kpKRIUFCQhIaGiojI2bNnpXr16jJhwgQRSf2CUBRFayDSrJaVeXofTQ7Hjh0rnTp1EpHUTiH58+dXBxl/kzEGHdcMTKtpV/NmL1zNbBAnT56UlStXSu7cubW+3P39/WXq1Kk6t/tJK6fk6G18fX3Fy8tLHcD4zdiGDx8uEydOlCtXroi7u3u6HuG6ykl5evLkidStW1edcnDbtm3Su3dvadmypRQuXFgCAwPl7t27cvPmTalXr544OTnJoEGDZMiQIVKwYEHp2LGjTu3sMpJT8vTgwQPJmzevDBw4ULZv3y69evWSRo0aSbly5SRXrlxSvXp1efLkicTHx4u3t7c4OztL3bp1pWrVqlKwYEGtGVf0lVNyZGzMk/GwUPwXGjduLDVq1JASJUpI0aJFZffu3SKS2lXfy8tLaw7i+Ph4+f7778XGxkZq1qwpvXr1Ejc3NylXrpxWg+k3pS0QNA3Lz58/Ly1btpRRo0ZJuXLl1OFSJk2aJIsWLdJ6vqaXmDEPmKzIkz5iY2PF09NTPbnPmDEjw56MxqIZmLZr167qlbG0PxYuXrwotra28t1334mIiKenpzRv3lztxKLrgMfvkt1z9DZbtmwRU1NT+frrryUqKkpERCtvHTt2fOf0X/oydp50uWqckJAg8+fPF0dHRylQoIBYW1tLly5dZMiQITJt2jRxcnKSTz/9VF6/fi2PHj2S4OBgCQgIkAYNGsjGjRsNEqex8qRLfjQ/qGbOnCm+vr6SO3duady4sXz33XeyceNGCQkJkZIlS4q/v7+IiDx+/Fg2b94s33zzjXz//fcGi9XYn6WcgnnKeiwU/wHNycfLy0sURZHWrVtrXb25ceOGtGnTRj755JN0l8D3798v48ePl969e2v1zHrXfkRSrzL5+/vLmjVr1NuMly9flrx580rZsmVl586d6pAxIrqN+p/ZsipP+tAUzCEhIdKuXTtZsWKFQQorQ1uzZo14eXnJ0qVLRSR9oe/m5iZfffWViKTeNitcuLDcv3/fIPvOKTl6m6CgIDEzM5PWrVtLSEiI7Nq1S4KDg8XR0VH69Onz1vEQ9WXMPKU9N8TGxsq6detk79696e4eaJqcpKSkyJ9//ilbtmyRx48faw0BNGHCBHF3d9eaVcSQ05oZI09v3oW5dOmSPHjwIN37Sk5O1jpXxsTEyJMnT0REe/SHoUOHStmyZTPtlmZOP+ayCvNkHCwUdfC2W3jz58+XTz/9VEqWLClPnjzR+jL/9ddfpVatWuogtTExMXLlypX37uvp06fStm1b9aQdGxsrI0aMkMGDB8u5c+ekdu3aMmHCBPWE9eWXX8rUqVNlxIgRUq5cuXfOGZrZsjJPhhAeHi6TJ09WB2jNTrcpEhISxN/fX1q0aKFeKdTkd8uWLWJpaWmwqz3vkp1z9C7fffedeHh4SMGCBaVChQpSpUqVDIfEMRRj5WnKlCni6uoqbdu2lWbNmqnjaOryQ1ET4+jRo8Xb29tgBfS7ZEWe0r5mWFiYNGrUSJo2bSqNGzeWJUuWqOvSnq8uX7781vNOTEyMNG7cWIKDgw0ea0Zy6jGX1ZinrMNC8T3S/gLdtWuXrF+/Xs6cOaMue/bsmdjZ2cnYsWNF5H8f1ujoaOnXr5+4uLhInz59RFEUGTlypE7txnr37q3OrBITEyMDBw6U8PBwCQoKkpo1a8rp06dFJPU2bc2aNdVOHxcuXDDAO/5njJEnQ9DM6ZsdZTQw7cOHD6VHjx7Sq1cv5ug9YmJi5NmzZ+qA25ktK/N069YtadiwoZQoUUI2bdok0dHRWp2/NLZu3Sq2trYyY8YMreWvXr2S+Ph4mT9/vpQsWdKgV+3fJyvyFBsbK3379pU8efLI6NGj5cyZMxkOxB8ZGSkdOnQQR0dHdV50kdSOdY8ePZJDhw5J/fr1pVKlSmoznqyQU4+5rMY8ZQ0Wihn466+/tG4xXLlyRXx8fMTJyUkqVKgg+fPn1zqx/vjjj2JtbS3Xrl3Tep07d+7Id999J23atJENGzZkuK+4uDgJCQnRWnbr1i3x8vKSkydPikhq54SiRYvKnDlztLa5deuW9OnTR2uy86yUlXn6GGkGpm3YsKFcvXpVdu3aJSVLlpTatWtnWfGTk33IVxi+/fZb8fHx0Rr8WSS1OcfXX38toaGhEhQUJDY2NjJx4kR5+fKliKSeb3755Rf5/PPPpVq1auLo6PivOmJkV/PmzRNvb2+1PXRamnPMo0ePpEiRItK8eXN1liPNcl9fX2nTpo04ODhI7969s3QSAqLshoViGsnJyTJu3DjJkyePOp/wn3/+KY0aNZKePXuqt2a+//57cXBwkAMHDqjPK1++vPj7+0t0dLTcv39fpk6d+t79JSUlyYQJE0RRFFmwYIHWjBrTp0+X9u3bi0jqbbRhw4apRdm3334rvXv3lqioKKOcwLI6Tx+ze/fuSa1atcTS0lIsLS1l2rRpxg6JjCwiIkLy5s2rHjtJSUmSkpIi//nPf8TKykpsbGxk6NChsnjxYrVDj0Z0dLQsWrRIevfuLbNmzTJG+JkuMjJSXF1dZcCAAVrLV6xYIW5ubur5VkTk6tWrWttoflysXbtWZs2alW6GH6KPEQvFNJ4/fy6enp5SoEABadeunZw/f14iIyNl3rx56m2+7777Tuzt7cXU1FTatGmjtiU8dOiQmJiYSK1atcTExER69OghiYmJGV7VOHXqlNrIfObMmVK3bl354Ycf1DkpRVJP6PXr15ft27fLy5cv5euvv5a6deuKj4+PtG3bVus2c1ZfOcmqPFGqGTNmyMiRI3WeWo4+bOfOnRMrKyut0QJevXolbdu2lfPnz0twcLDUrl1b7d2tObY0/09ISPigr5AdO3ZMrK2t5ejRo+qyI0eOSP369WXq1KkyZMgQcXBwyHBsWUN24iH6ULBQ/H+aAqdv375SsmRJadu2rTqRe1xcnERGRkrLli3F09NTtm/fLvv37xdFUWTVqlVqr6t9+/bJ3Llz1fkr32bgwIGyfPlyEUkdssPT01NiYmKkVatWMnXqVLUN4po1a6RBgwbqyevPP/+U48ePq69jjOIqK/NEqVhEU1pvG1hcc2w+efJEGjduLJ07d1bnAv9Q6FLIXb58WUxNTeW3335Tl8XHx6u332/fvi0lS5aUoUOH6vyaRB+zj3YKvzt37mDChAk4evQogNTpfUQEZcqUQdOmTeHg4ICwsDCEhoYid+7cCAkJQVRUFFatWoXmzZvDzs4OuXLlwty5c9Up1Hx9fdG/f391aryMJCcno0iRIihRogQAoECBAqhbty6sra0xffp0rFmzBsOGDUNUVBT8/f1hbW2NSZMmAQBKly6NGjVqqK+TFVPvGStP9D9ZPcUiZW+lS5dGnTp1sGLFCvz9998AUo9LU1NTJCcnw87ODqVLl8bFixfx+vVrI0drGPLGtKVPnz5967ZmZmYoX748Fi1ahKSkJACpc1ZrptVzdXVFy5Yt8eOPP+LZs2fvnPuciD7SuZ6fPXuGZs2aYezYsejcuTPCw8PVeWBfvXqFhw8fYsyYMVAUBWvXrkVKSgp27doFKysruLu7AwDOnj2Lrl274vTp0+qckrrQzFe5YsUKAKlFwF9//YVhw4bhk08+gY+PDzw8PPCf//wHf/zxB+bMmYPPP/88w9fJbMbMExG93dChQ3Hq1CksXrwYjx8/hqIoSElJgampKa5du4YHDx6gffv2cHNzM3ao/1pKSor6Y2nr1q3w9fVFu3bt0K9fP5w8eRIAkJCQoM5zX6pUKTRu3BgXL17ETz/9BED7fBkdHY3nz58jKCgI+fLly9o3Q5QTGfNypjF9++230rBhQ/Hw8JCAgAAZPXq0iKT2GixcuLA8fvxY5syZI1WqVJEtW7bIvn37RFEU6devn/Tv318KFiwo4eHh/2iwT818lZqG1H379hV7e3utdodLly7VGjzXWLdHjJknInq7tAOL79ixQ0JCQmTUqFFiY2MjnTt3VgeO/hDcvn1bfHx8JF++fDJq1CgZPHiwODg4iI+Pjzx79kzd7t69e/Ls2TO5f/++NGnSRMzNzWXZsmVy9epVuXnzpmzdulWqVKkiXl5ebPpCpKOPtlB8+vSpfPLJJ9KpUydZv369ODs7y4QJEyQkJEQCAgLk9OnT8vjxY2ndurW0a9dO4uLiZNasWdKyZUupXbu2HDx48B/tN6P5KkNCQmTEiBFa67MLY+WJiN5v6tSpUrZsWSlQoIBUrFhRqlWrlm64rZzu6dOnUr58eSlSpIjExcWpy3/++WdxcnKS9evXi4hIv379xNraWn3/ly9flk8//VTs7OzE2tpavL29pWDBguq5loh089EWiiIiq1atEi8vL9m2bZucOHFC2rdvL/Xq1RMbGxvZu3eviIisXLlSKlSoIOPGjRMRMVjP09jYWClXrpyEhobKihUrpFu3bmpja43s0onBmHkionfL6oHFjWHixIni6+sr+/fvV5dduXJFcuXKJd9//714eXlJtWrV5NChQ+mee/z4cQkJCZF169Z9UFdZibLKR9lGUaN9+/YoVqwYfvrpJ5QuXRqzZs1CyZIl8eLFC0RERAAAAgICUKVKFRQrVgwAYGlp+a/3KyKwsrLCtGnTsHz5crx+/Rrjx49XG1trZJdODMbKExG9n7W1NfLlywcPDw9jh5JpBgwYgFy5cmHBggXqsiNHjiB//vzw8vLC8uXLceLECdSuXVtdL//fAaZGjRpo1qwZ2rdvDzs7uyyPnSinU0RzNH2kTpw4gc8//xytW7fG6NGjISK4desWSpQoARGBoihISEiAhYVFpuw/PDwcoaGh8PDwQNu2bTNlH4Zg7DwR0cft999/x8yZM9GhQwccPXoU27dvx4wZM/DZZ58ZOzSiD9pHXyiKCIYMGYLz58/jhx9+QKVKlQCk9rTLqmETRAT379+Hi4tLluzvn8gOeSKij1diYiK6dOmCzZs3o2nTpvjll1/g6OgIAOqPVSIyvI/+G15RFAQFBSExMRE//PCDujwrix9FUbJ1kQhkjzwR0cfL3Nwcw4cPR4UKFVCrVi04Ojqqt5dZJBJlHjNjB5AdODs7o23btjA3N+cv03dgnojImKpWrQofHx/88ccf8PPzQ8WKFZGcnJwl48oSfaw++lvPGix8dMM8EZEx/fXXXwgICICbmxuWLVtm7HCIPni8ovj/WPzohnkiImMqWrQo72wQZSFeUSQiohyFBSJR1mFPBCIiylFYJBJlHRaKRERERJQhFopERERElCEWikRERESUIRaKRERERJQhFopERERElCEWikRERESUIRaKRERERJQhFopERERElCEWikRERESUIRaKRERERJQhFopERERElCEWikRERESUIRaKRERERJQhFopERERElCEWikRERESUIRaKRERERJQhFopERERElCEWikRERESUIRaKRERERJQhFopERERElCEWikRERESUIRaKRERERJQhFopERERElCEWikRERESUIRaKRERERJSh/wOjF/46loDaPgAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 660x330 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(6.6, 3.3))\n",
    "sns.barplot(\n",
    "    data=df,\n",
    "    x=\"model\",\n",
    "    hue=\"model\",\n",
    "    legend=False,\n",
    "    y=\"% S.U.N. Structures (MatterSim)\", \n",
    "    palette=colors,\n",
    "    saturation=1\n",
    ")\n",
    "plt.xticks(rotation=30, ha=\"right\")\n",
    "plt.xlabel(\"\")\n",
    "\n",
    "x_tick_rotation = 30\n",
    "\n",
    "locs, labels_out = plt.xticks(ha='right', rotation=x_tick_rotation,)\n",
    "for l in labels_out:\n",
    "    # manually draw labels so we can slightly adjust the x position\n",
    "    x, y = l.get_position()\n",
    "    plt.text(x=x + 0.2, y=y, s=l.get_text(), rotation=x_tick_rotation, ha=\"right\", va=\"top\")\n",
    "ax = plt.gca()\n",
    "# remove the originally drawn labels\n",
    "ax.set_xticklabels([], minor=False)\n",
    "ax.tick_params(axis='x', which='major', pad=-1, width=0.5, length=2)\n",
    "ax.tick_params(axis='y', which='major', pad=1, width=0.5, length=2)\n",
    "plt.xlim(-1.0, len(model_order))\n",
    "\n",
    "plt.yticks([0.0, 10, 20, 30,])\n",
    "plt.tight_layout()\n",
    "plt.savefig(\"figures/metrics_sun.png\", bbox_inches=\"tight\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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K1asQKVKlfD777/jjz/+4ByKREREROlM7wm34+Pj4efnh/3796NatWpJJspObtRzaqZwPHz4cJJlnTt3RufOnT+6rERERESUenonihcvXkTVqlUBANevX9da9zGjnomIiIgoa9E7UUyPUc9ERERElPWk651ZRCRVzclERERElPWlS6K4evVqODs7I1euXMiVKxecnZ2xatWq9Dg0ERERERmI3k3PEydOxPz58zF48GBlLsOgoCAMHz4c9+7dw9SpU/UuJBERERFlPpXo2VZcuHBhLF68GB4eHlrLAwICMHjwYDx58kSvAupDcwu/qKgomJubG6wcREREn6vr168YugiZwt7ewdBFSLWPyY/0bnqOi4tD9erVkyyvVq0a4uPj9T08ERERERmI3oni119/jeXLlydZvmLFCnz11Vf6Hp6IiIiIDCRNfRRHjBih/K1SqbBq1Srs3bsXtWvXBgCcPHkS9+7dQ8+ePdOnlERERESU6dKUKAYHB2s9r1atGgDg1q1bAABLS0tYWlri0qVLehaPiIiIiAwlTYkiJ9kmIiIi+vSluel52rRpyJs3r1Yz9PtUKhXmzZuX5sIRERERkeGkuek5Li5O+ftDeK9nIiIiouxL76ZnNkMTERERfZrS9V7PRERERPTp0Ht6nJTMnz8/LacgIiIiIgNLl+lxPoR9FImIiIiyL06PQ0REREQ6sY8iEREREemUofMoAuyjSERERJRdcR5FIiIiItKJ8ygSERERkU7so0hEREREOqWpRvFdU6dOTXb9xIkT9T0FERERERmA3onitm3btJ7HxcUhJCQExsbGsLOzY6JIRERElE3pnSjqGswSHR2Nb775Bh06dND38ERERERkIBnSR9Hc3BxTpkzBhAkTMuLwRERERJQJMmwwS1RUFKKiojLq8ERERESUwfRuel68eLHWcxFBWFgYfvnlF7i5uel7eCIiIiIyEL0TxQULFmg9z5EjBwoXLgxPT0+MHTtW38MTERERkYHonSiGhISkRzmIiIiIKIvhhNtEREREpJPeNYojRoxI9bbz58/X93RERERElEnSZR7F4OBgxMXFoVy5cgCA69evw8jICFWrVlW2U6lU+p6KiIiIiDKR3oli27ZtYWZmhrVr16JAgQIAgGfPnqFXr16oV68efHx89C4kEREREWU+vfsozps3DzNnzlSSRAAoUKAApk+fjnnz5qW4/9GjR9G2bVsUK1YMKpUKf/zxR7LbHz58GCqVKskjPDxc35dCRERERO/QO1GMjo7G48ePkyx//PgxXrx4keL+MTExqFSpEpYtW/ZR57127RrCwsKUR5EiRT5qfyIiIiJKnt5Nzx06dECvXr0wb9481KxZEwBw8uRJjBo1Ch07dkxxfzc3tzRNzF2kSBHkz5//o/cjIiIiotTRu0bR19cXbm5u6N69O2xsbGBjY4Pu3bujZcuW+Omnn9KjjDpVrlwZRYsWRbNmzXD8+PEMOw8RERHR50rvGsU8efLgp59+wty5c3Hr1i0AgJ2dHfLmzat34XQpWrQofH19Ub16dbx9+xarVq1Cw4YNcfLkSWWUdUBAAAICAhAXF5chZSAiIiL6HKhERPQ9yLFjx/Dzzz/j9u3b2Lx5M4oXL45ffvkFtra2qFu3buoLo1Jh27ZtcHd3/6jzN2jQAKVKlcIvv/yitTw6OhoWFhaIioqCubn5Rx2TiIiI9Hf9+hVDFyFT2Ns7GLoIqfYx+ZHeTc9btmxBixYtkDt3bpw5cwZv374FAERFRWHGjBn6Hj5VatasiZs3b2bKuYiIiIg+F3onitOnT4evry9WrlwJExMTZXmdOnVw5swZfQ+fKmfPnkXRokUz5VxEREREnwu9+yheu3YN9evXT7LcwsICz58/T3H/ly9fatUGhoSE4OzZsyhYsCBKlSqFsWPH4sGDB1i3bh0AYOHChbC1tYWTkxPevHmDVatW4eDBg9i7d6++L4WIiN7BJkMi0jtRtLa2xs2bN1G6dGmt5YGBgShTpkyK+586dQqNGjVSnmvuHe3p6Ql/f3+EhYXh3r17yvrY2Fj4+PjgwYMHyJMnDypWrIj9+/drHYOIiCgzMJmmT53eieK3336LoUOHws/PDyqVCg8fPkRQUBBGjhyJCRMmpLh/w4YNkdx4Gn9/f63no0ePxujRo/UtNhERERGlQO9EccyYMVCr1WjSpAlevXqF+vXrI2fOnBg5ciQGDx6cHmUkIiIiIgPQO1FUqVQYP348Ro0ahZs3b+Lly5dwdHREvnz50qN8RERERGQgeieKGqampnB0dEyvwxERERGRgek9PQ4RERERfZqYKBIRERGRTkwUiYiIiEgnJopEREREpFO6DGZ5/vw5Vq9ejStXEicedXJyQu/evWFhYZEehyciIiIiA9C7RvHUqVOws7PDggUL8PTpUzx9+hTz58+HnZ1dpt3rmYiIiIjSn941isOHD0e7du2wcuVKGBsnHi4+Ph5eXl4YNmwYjh49qnchiYiIiCjz6Z0onjp1SitJBABjY2OMHj0a1atX1/fwRERERGQgejc9m5ub4969e0mWh4aGwszMTN/DExEREZGB6J0odu3aFX369MGmTZsQGhqK0NBQbNy4EV5eXvDw8EiPMhIRERGRAejd9Pzjjz9CpVKhZ8+eiI+PBwCYmJjA29sbs2bN0ruARERERGQYeieKpqamWLRoEWbOnIlbt24BAOzs7JAnTx69C0dEREREhqN30/O9e/cgIsiTJw8qVKiAChUqKEmirr6LRERERJQ96J0o2tra4vHjx0mWR0ZGwtbWVt/DExEREZGB6J0oighUKlWS5S9fvkSuXLn0PTwRERERGUia+yiOGDECAKBSqTBhwgStPokJCQk4efIkKleurHcBiYiIiMgw0pwoBgcHA0isUbxw4QJMTU2VdaampqhUqRJGjhypfwmJiIiIyCDSnCgeOnQIANCrVy8sWrQI5ubm6VYoIiIiIjI8vafHWbNmTXqUg4iIiIiyGL0HsxARERHRp4mJIhERERHpxESRiIiIiHRiokhEREREOuk1mEWtVsPf3x9bt27FnTt3oFKpYGtri06dOuHrr7/WORE3EREREWUPaa5RFBG0a9cOXl5eePDgASpUqAAnJyfcvXsX33zzDTp06JCe5SQiIiKiTJbmGkV/f38cPXoUBw4cQKNGjbTWHTx4EO7u7li3bh169uypdyGJiIiIKPOluUYxICAA48aNS5IkAkDjxo0xZswY/Prrr3oVjoiIiIgMJ82J4vnz59GyZcsPrndzc8O5c+fSengiIiIiMrA0J4pPnz6FlZXVB9dbWVnh2bNnaT08ERERERlYmhPFhIQEGBt/uIujkZER4uPj03p4IiIiIjKwNA9mERF88803yJkzp871b9++TXOhiIiIiMjw0pwoenp6prgNRzwTERERZV9pThTXrFmTLgU4evQo5s6di9OnTyMsLAzbtm2Du7t7svscPnwYI0aMwKVLl1CyZEl8//33+Oabb9KlPERERESUyOC38IuJiUGlSpWwbNmyVG0fEhKC1q1bo1GjRjh79iyGDRsGLy8v7NmzJ4NLSkRERPR5SXONYlBQECIjI9GmTRtl2bp16zBp0iTExMTA3d0dS5Ys+WAfRg03Nze4ubml+ry+vr6wtbXFvHnzAAAODg4IDAzEggUL0KJFi7S9GCIiIiJKIs01ilOnTsWlS5eU5xcuXECfPn3QtGlTjBkzBjt37sTMmTPTpZDvCgoKQtOmTbWWtWjRAkFBQel+LiIiIqLPWZprFM+ePYtp06Ypzzdu3IhatWph5cqVAICSJUti0qRJmDx5st6FfFd4eHiS+RutrKwQHR2N169fI3fu3AgICEBAQADi4uLS9dxEREREn5M0J4rPnj3TStiOHDmi1YRco0YNhIaG6le6NPLw8ICHhweio6NhYWFhkDIQERERZXdpbnq2srJCSEgIACA2NhZnzpxB7dq1lfUvXryAiYmJ/iV8j7W1NR49eqS17NGjRzA3N0fu3LnT/XxEREREn6s0J4qtWrXCmDFjcOzYMYwdOxZ58uRBvXr1lPXnz5+HnZ1duhTyXS4uLjhw4IDWsn379sHFxSXdz0VERET0OUtzojht2jQYGxujQYMGWLlyJVauXAlTU1NlvZ+fH5o3b57icV6+fImzZ8/i7NmzABKnvzl79izu3bsHABg7dqzWxN39+/fH7du3MXr0aFy9ehU//fQTfvvtNwwfPjytL4WIiIiIdEhzH0VLS0scPXoUUVFRyJcvH4yMjLTWb968Gfny5UvxOKdOnUKjRo2U5yNGjACQeOcXf39/hIWFKUkjANja2uLPP//E8OHDsWjRIpQoUQKrVq3i1DhERERE6SzNiaLGhwaLFCxYMFX7N2zYECLywfX+/v469wkODk7V8YmIiIgobdKcKPbu3TtV2/n5+aX1FERERERkQGlOFP39/WFjY4MqVaokWyNIRERERNlTmhNFb29vBAQEICQkBL169UKPHj1S3dxMRERERFlfmkc9L1u2DGFhYRg9ejR27tyJkiVLokuXLtizZw9rGImIiIg+AWlOFAEgZ86c8PDwwL59+3D58mU4OTlhwIABKF26NF6+fJleZSQiIiIiA9ArUdQ6UI4cUKlUEBEkJCSk12GJiIiIyED0ShTfvn2LgIAANGvWDPb29rhw4QKWLl2Ke/fupWoORSIiIiLKutI8mGXAgAHYuHEjSpYsid69eyMgIACWlpbpWTYiIiIiMqA0J4q+vr4oVaoUypQpgyNHjuDIkSM6t9u6dWuaC0dEREREhpPmRLFnz55QqVTpWRYiIiIiykL0mnA7Ja9fv07r4YmIiIjIwNJt1PO73r59i/nz58PW1jYjDk9EREREmSDNieLbt28xduxYVK9eHa6urvjjjz8AAGvWrIGtrS0WLFiA4cOHp1c5iYiIiCiTpbnpeeLEifj555/RtGlTnDhxAp07d0avXr3wzz//YP78+ejcuTOMjIzSs6xERERElInSnChu3rwZ69atQ7t27XDx4kVUrFgR8fHxOHfuHAe5EBEREX0C0tz0fP/+fVSrVg0A4OzsjJw5c2L48OFMEomIiIg+EWlOFBMSEmBqaqo8NzY25t1YiIiIiD4haW56FhF88803yJkzJwDgzZs36N+/P/Lmzau1HSfcJiIiIsqe0pwoenp6aj3v0aOH3oUhIiIioqwjzYnimjVr0rMcRERERJTFZMiE20RERESU/TFRJCIiIiKdmCgSERERkU5MFImIiIhIJyaKRERERKQTE0UiIiIi0inDEsWmTZuiTJkyGXV4IiIiIspgaZ5HMSUdOnTAkydPMurwRERERJTBMixRHDhwYEYdmoiIiIgyAfsoEhEREZFOetcojhgxQudylUqFXLlyoWzZsmjfvj0KFiyo76mIiIiIKBPpnSgGBwfjzJkzSEhIQLly5QAA169fh5GREcqXL4+ffvoJPj4+CAwMhKOjo94FJiIiIqLMoXfTc/v27dG0aVM8fPgQp0+fxunTp3H//n00a9YMHh4eePDgAerXr4/hw4enR3mJiIiIKJPonSjOnTsX06ZNg7m5ubLMwsICkydPxpw5c5AnTx5MnDgRp0+f1vdURERERJSJ9E4Uo6KiEBERkWT548ePER0dDQDInz8/YmNjP3iMZcuWoXTp0siVKxdq1aqFf//994Pb+vv7Q6VSaT1y5cql78sgIiIiovekS9Nz7969sW3bNty/fx/379/Htm3b0KdPH7i7uwMA/v33X9jb2+vcf9OmTRgxYgQmTZqEM2fOoFKlSmjRooXO5FPD3NwcYWFhyuPu3bv6vgwiIiIieo/eieLPP/+MJk2aoFu3brCxsYGNjQ26deuGJk2awNfXFwBQvnx5rFq1Suf+8+fPx7fffotevXrB0dERvr6+yJMnD/z8/D54TpVKBWtra+VhZWWl78sgIiIiovfonSjmy5cPK1euRGRkJIKDgxEcHIzIyEisWLEC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LC0tsX79egCAn58fxo8fj82bN8Pa2hp2dnZaTcmaaxERpR1rFHWoUaMGateujf379+Ps2bNQqVSws7ODWq1WLjrpmQBpjtmqVSsMHToUYWFhCA4OTrfjZ4TMjhERfd7y58+P3r17IyQkBAsWLECXLl0wePBgTJ06FXXr1kXZsmWTJIVMEon0xxrFDwgNDUX37t1ha2uLdevWZeq5RQShoaEoVapUpp73YxkyRkT0+YmLi8NXX32F7du3o0WLFlixYgWsra0BsPaQKKNw1PMHlCxZEu7u7jAxMcn0C5BKpcrySSJg2BgR0efHxMQEo0ePRkhICFxdXWFtba1ce3j9IcoYrFFMBpOflDFGRJSZRATDhw/H+fPnsWDBAlSqVAkJCQnK/IlElL7YRzEZTIBSxhgRUWZSqVQYOXIk4uLilIm3mSQSZRw2PRMRUbZSokQJdnshyiRseiYiomyHCSJR5mDTMxERZTtMEokyBxNFIiIiItKJiSIRERER6cREkYiIiIh0YqJIRERERDoxUSQiIiIinZgoEhEREZFOTBSJiIiISCcmikRERESkExNFIiIiItKJiSIRERER6cREkYiIiIh0YqJIRERERDoxUSQiIiIinZgoEhEREZFOTBSJiIiISCcmikRERESkExNFIiIiItKJiSIRERER6cREkYiIiIh0YqJIRERERDoxUSQiIiIinZgoEhEREZFOTBSJiIiISCcmikRERESk0/8BMuYlINda9Q4AAAAASUVORK5CYII=",
      "text/plain": [
       "<Figure size 660x330 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "<Figure size 640x480 with 0 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.figure(figsize=(6.6, 3.3))\n",
    "sns.barplot(\n",
    "    data=df,\n",
    "    x=\"model\",\n",
    "    hue=\"model\",\n",
    "    legend=False,\n",
    "    y=\"avg_rmsd_from_relaxation\", \n",
    "    palette=colors,\n",
    "    saturation=1\n",
    ")\n",
    "plt.xticks(rotation=30, ha=\"right\")\n",
    "plt.xlabel(\"\")\n",
    "plt.ylabel('Avg. RMSD to equilibrium [$\\AA$]', labelpad=0, loc=\"top\")\n",
    "\n",
    "x_tick_rotation = 30\n",
    "\n",
    "locs, labels_out = plt.xticks(ha='right', rotation=x_tick_rotation,)\n",
    "for l in labels_out:\n",
    "    # manually draw labels so we can slightly adjust the x position\n",
    "    x, y = l.get_position()\n",
    "    plt.text(x=x + 0.2, y=y, s=l.get_text(), rotation=x_tick_rotation, ha=\"right\", va=\"top\")\n",
    "ax = plt.gca()\n",
    "# remove the originally drawn labels\n",
    "ax.set_xticklabels([], minor=False)\n",
    "ax.tick_params(axis='x', which='major', pad=-1, width=0.5, length=2)\n",
    "ax.tick_params(axis='y', which='major', pad=1, width=0.5, length=2)\n",
    "\n",
    "plt.yticks([0.0, 0.5, 1.0, 1.5, 2.0, 2.5])\n",
    "plt.xlim(-1.0, len(model_order))\n",
    "\n",
    "plt.tight_layout()\n",
    "plt.savefig(\"figures/metrics_rmsd.png\", bbox_inches=\"tight\")\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": ".venv",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.10.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
